<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of FretesController
 *
 * @author gilberto

 */
class FretesController extends AppController{
    public $name = 'Fretes';
    
    public function index(){
        // enviar a viriável lista para o view com um select da tabela fretes
        $this->set("lista",$this->Frete->query("SELECT * FROM fretes Frete, cidades Cidade WHERE Cidade.id = Frete.cidade_id "));
    }
    
    public function beforeFilter() {
        parent::beforeFilter();
        
        $user = $this->Session->read('Auth.User');
        $negados = array();
        if($user[0]['Perfil']['id'] == 1){
            $negados = array('adicionar','editar','index');
            
        }else if($user[0]['Perfil']['id'] == 3){
            $negados = array('editar');
        }
        
        if(in_array($this->params['action'],$negados)){
            $this->redirect($this->pagErro);
        }
    }
    
    public function adicionar(){
        // Carrega as cidade (vide editar())
        $cid = ClassRegistry::init('Cidade');
        $cidades = $cid->find('list', array(
            'fields' => array('nm_cidade')
        ));
        $this->set('lista_cidades',$cidades);
        
        // se for requisição com dados 'post'
        if($this->request->is('post')){
            //executa salvar, se salvar
            if($this->Frete->save($this->request->data)){
                // define mensagem de salvamento e redireciona para o index
                $this->Session->setFlash('Frete salvo com sucesso');
                $this->redirect(array('action' => 'index'));
            }else{
                // se der erro define mensagem de erro e direciona para o index
                $this->Session->setFlash('Falha ao salvar Frete');
                $this->redirect(array('action' => 'index'));
            }
        }
        
        
    }
    
    public function editar($id = null){
        // Carrega em $frete_atual ods dados do frete informado pelo parâmetro id
        $frete_atual = $this->Frete->findById($id);
        //Carrega o model Cidade
        $cid = ClassRegistry::init('Cidade');
        //Faz busca em todas as cidades e joga em $cidades(busca apenas o campo nm_cidade)
        $cidades = $cid->find('list', array(
            'fields' => array('nm_cidade')
        ));
        // envia dados das cidades para a view com o nome $lista_cidades
        $this->set('lista_cidades',$cidades);
        
        //Se for envio via post ou put(que eu não sei o q é)
        if($this->request->is('post') || $this->request->is('put')){
            //Carrega o modelo com o id do request
            $this->Frete->id = $id;
            //Se salvar
            if($this->Frete->save($this->request->data)){
                // Declara a mensagem e redireciona para o index do frete
                $this->Session->setFlash('Frete Salvo com sucesso');
                $this->redirect(array('action' => 'index'));
            }else{
                //senão mostra a mensagem de erro
                $this->Session->setFlash('Falha ao salvar');
            }
        }
        
        // se não houver dados enviados para gravar carrega a requisição com os dados da pesquisa do frete
        if(!$this->request->data){
            $this->request->data = $frete_atual;
        }
    }
    
    public function deletar($id){
        //Se deletar o frete com id do parâmtro
        if($this->Frete->delete($id)){
            // Coloca mensagem de exclusão e redireciona para o index
            $this->Session->setFlash('Frete deletado com sucesso');
            $this->redirect(array('action' => 'index'));
        }
    }
    
   }

?>
